package com.iwhalecloud.bss.kite.cucc.client.api.order;

import com.iwhalecloud.bss.kite.client.dto.DataResult;
import com.iwhalecloud.bss.kite.cucc.client.dto.order.OrderInfoListReq;
import com.iwhalecloud.bss.kite.cucc.client.dto.order.OrderListInfo;
import com.iwhalecloud.bss.kite.cucc.client.dto.order.QryUserDetailInfoReq;
import com.iwhalecloud.bss.kite.cucc.client.dto.pay.PayOrderInfoReqDTO;

import java.util.Map;

public interface IOrderService {

	/**
	 * 从订单中心获取详情
	 * @param orderId
	 * @return
	 */
	Map<String, Object> getOrderDetail(String orderId);

	/**
	 * 从集客获取变更详情
	 * @param serialNumber
	 * @param prodId
	 * @return
	 */
	Map<String, Object> getOrderDetail(String serialNumber, String prodId);

    /***
     * 从集客获取变更信息
     * @param productId
     * @param custId
     * @param serialNumbe
     * @return
     */
    Map<String, Object> getChangeOriginOrderOld(String productId,String custId, String serialNumbe, String provinceId, String lanId, String staffCode,String opCode, String userId);

    Map<String, Object> getChangeOriginOrder(String productId, String custId, String serialNumber, String provinceId, String lanId, String staffCode, String userId);

    /***
     * 融合获取变更信息
     * @param productId
     * @param custId
     * @param serialNumbe
     * @return
     */
    Map<String, Object> getChangeOriginOrdermember(String serialNumber, String provinceId, String lanId, String staffCode, String userId);
    /***
     * 获取工单
     * @param flowId
     * @return
     */
    Map<String, Object> getWorkOrderInfo(String orderId, String flowId, String taskId);

    /**
     * 订单列表查询接口
     * @author zhang.song
     * @date 2021-04-16 20:24
     * @param orderInfoListReq
     * @return com.iwhalecloud.bss.kite.cucc.client.dto.order.OrderListInfo
     */
    OrderListInfo queryOrderList(OrderInfoListReq orderInfoListReq);

    /**
     * 订单缴费列表查询
     * @param payOrderInfoReqDTO
     * @return com.iwhalecloud.bss.kite.cucc.client.dto.order.OrderListInfo
     */
    OrderListInfo queryPayOrderList(PayOrderInfoReqDTO payOrderInfoReqDTO);

    /**
     * 根据原单查询代收费或落地管理产品offerId、singleGoodsSku
     * @author zhang.song
     * @date 2021-07-20 11:08
     * @param originalOrderId
     * @param origin
     * @return java.util.Map<java.lang.String,java.lang.String>
     */
    Map<String, String> getOfferIdByOriginalOrderId(String originalOrderId, String origin);

    /***
     * 从用户中心获取用户信息
     * @return
     */
    DataResult<Map<String, Object>> qryUserDetailInfo(QryUserDetailInfoReq qryUserDetailInfoReq);


}
